\chapter{Wstęp}

Robotyka jest interdyscyplinarną dziedziną nauki i techniki łączącą elementy mechaniki, automatyki, elektroniki, miernictwa oraz informatyki. Jej historia sięga 1942~roku, kiedy to termin \w{robotyka} po raz pierwszy pojawił się w fantastycznonaukowym opowiadaniu Isaaca Asimova \w{Runaround}. Twórczość Asimova zainspirowała wynalazców George'a Devola oraz Josepha Engelbergera do stworzenia pierwszego robota. Założona przez nich firma \w{Unimation} skonstruowała w 1956 roku manipulator \w{Unimate}, który w 1961 z powodzeniem zastosowano w fabryce \w{General Motors}. Wraz z postępem technologicznym w drugiej połowie XX wieku roboty stawały się coraz bardziej zaawansowane technicznie i zaczęły zastępować ludzi w fabrykach, ale także wyręczać ich w codziennych obowiązkach.

Ludzkość wiąże z rozwojem robotyki duże nadzieje. Roboty są w stanie wykonywać wiele czynności dużo lepiej niż ludzie. Nie popełniają błędów, są w stanie działać precyzyjniej i szybciej. Są silniejsze i zdolne do pracy w nieprzyjaznych dla ludzi środowiskach. Nie męczą się, więc łatwo mogą wyręczyć nas w wykonywaniu monotonnych i powtarzalnych zajęć. Przykładami mogą być tutaj roboty działające w fabrykach na liniach montażowych, wykonujące zadania zwiadowcze podczas misji wojskowych oraz badawczych, ale także te, które tak jak robot \w{Roomba} są w stanie posprzątać za nas pokój. Nic więc dziwnego, że nad rozwojem robotyki pracują ośrodki badawcze na~całym świecie. 

Przykładem międzynarodowej inicjatywy związanej z rozwojem robotyki jest \rc{} - liga robotów grających w piłkę nożną. Celem przedsięwzięcia jest promocja robotyki oraz badań w dziedzinie sztucznej inteligencji. Atrakcyjna forma rozgrywek przyciąga ośrodki akademickie z całego świata. Mimo iż sama idea robotów grających w piłkę może się wydawać czysto rozrywkowa, to jej realizacja okazuje się bardzo trudnym zadaniem. Mecze piłki nożnej stanowią wymagające środowisko testowe dla robotów - zarówno dla ich konstrukcji mechanicznej, jaki i dla oprogramowania. Jednak dzięki prowadzonym badaniom z roku na rok rosną możliwości zawodników ligi, a zachowania przez nich prezentowane pozwalają mieć nadzieję, że kiedyś uda się skonstruować roboty, które będą w stanie pokonać ludzką reprezentację mistrzów świata w tej dyscyplinie.

\section{Cel pracy}

Celem niniejszej pracy było stworzenie oraz przetestowanie w środowisku symulacyjnym algorytmu sterującego rozgrywką w lidze \rc{} - konkretnie w jej odmianie \sm. Opracowane oprogramowanie miałoby w przyszłości stanowić bazę do dalszych, bardziej zaawansowanych badań nad ligą prowadzonych na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, a także do wykonania fizycznej realizacji robotów. 

Podczas prac postanowiono wykorzystać modele robotów oraz oprogramowanie powstałe jako wynik pracy inżynierskiej \w{Środowisko symulacyjne i algorytm unikania kolizji robota mobilnego grającego w piłkę nożną} \cite{inz}. Okazało się jednak, iż na potrzeby realistycznego oddania rozgrywek ligi niezbędna jest modyfikacja istniejących modeli robotów. Te dotychczas używane bazowały na robocie HMT2 skonstruowanym na WEiTI w ramach pracy \cite{hamada_mgr}. Ich wadą była baza jezdna w postaci napędu różnicowego ograniczająca motorykę robota oraz brak urządzenia przeznaczonego do kopania piłki. Aby modele robotów były konkurencyjne podczas rozgrywek \rc, wyposażono je w omnikierunkową bazę jezdną oraz dodano tzw. \w{kicker}, czyli przyrząd do kopania. Działania te pozwoliły również na stworzenie prostszych algorytmów sterowania robotem w rozgrywce. 

W związku z użyciem nowej bazy jezdnej modeli możliwe stało się zastosowanie bardziej wydajnych algorytmów unikania kolizji, które w przeciwieństwie do zaproponowanego w pracy inżynierskiej algorytmu \w{CVM} nie są ograniczone możliwościami poruszania się robota. W tym celu dokonano przeglądu rozwiązań stosowanych w lidze i wybrano do implementacji dwa algorytmy - \w{RRT} oraz metodę sztucznych pól potencjałowych.

\section{Zakres pracy}
W ramach niniejszej pracy wykonano następujące zadania:
\begin{enumerate}
	\item instalacja i konfiguracja środowiska symulacyjnego,
	\item modyfikacja modeli robotów w celu lepszego przystosowania ich do realiów ligi \sm, 
	\item napisanie kontrolera robota odpowiedzialnego za sterowanie bazą jezdną, bezkolizyjne poruszanie się oraz kopanie,
	\item implementacja algorytmu sterowania robotem w rozgrywce \rc,
	\item napisanie modułu automatycznego sędziego niezbędnego do automatyzacji testów opracowanego algorytmu,
	\item testy algorytmu sterującego rozgrywką.
\end{enumerate}